import { IPSModelObject } from '../ipsmodel-object';
import { IPSLanguageRes } from '../res/ipslanguage-res';
import { IPSSysCss } from '../res/ipssys-css';

/**
 *
 * 子接口类型识别属性[]
 * @export
 * @interface IPSApplicationUI
 */
export interface IPSApplicationUI extends IPSModelObject {
  /**
   * 自动填充最小触发字符数
   * @type {number}
   */
  aCMinChars: number;

  /**
   * 无权限按钮显示模式
   * @description 值模式 [无权限按钮显示模式] {1：禁用、 2：隐藏、 6：隐藏且默认隐藏 }
   * @type {( number | 1 | 2 | 6)}
   */
  buttonNoPrivDisplayMode: number | 1 | 2 | 6;

  /**
   * 默认应用视图界面样式
   *
   * @type {IPSSysCss}
   */
  getDefaultAppViewPSSysCss(): IPSSysCss | null;

  /**
   * 默认应用视图界面样式
   *
   * @type {IPSSysCss}
   */
  get defaultAppViewPSSysCss(): IPSSysCss | null;

  /**
   * 默认应用视图界面样式（必须存在）
   *
   * @type {IPSSysCss}
   */
  getDefaultAppViewPSSysCssMust(): IPSSysCss;

  /**
   * 默认控件样式
   * @type {string}
   */
  defaultControlStyle: string;

  /**
   * 表单项无值显示内容
   * @type {string}
   */
  formItemEmptyText: string;

  /**
   * 表单项无权限显示模式
   * @description 值模式 [应用无权限内容显示模式] {1：显示空或*内容、 2：隐藏 }
   * @type {( number | 1 | 2)}
   */
  formItemNoPrivDisplayMode: number | 1 | 2;

  /**
   * 表格列启用过滤器模式
   * @description 值模式 [实体表格链接模式] {0：不启用、 1：启用、 2：启用（自动判断） }
   * @type {( number | 0 | 1 | 2)}
   */
  gridColumnEnableFilter: number | 0 | 1 | 2;

  /**
   * 表格列启用链接模式
   * @description 值模式 [实体表格链接模式] {0：不启用、 1：启用、 2：启用（自动判断） }
   * @type {( number | 0 | 1 | 2)}
   */
  gridColumnEnableLink: number | 0 | 1 | 2;

  /**
   * 表格列无权限显示模式
   * @description 值模式 [应用无权限内容显示模式] {1：显示空或*内容、 2：隐藏 }
   * @type {( number | 1 | 2)}
   */
  gridColumnNoPrivDisplayMode: number | 1 | 2;

  /**
   * 表格行默认激活模式
   * @description 值模式 [应用表格数据激活模式] {0：无、 1：单击、 2：双击 }
   * @type {( number | 0 | 1 | 2)}
   */
  gridRowActiveMode: number | 0 | 1 | 2;

  /**
   * 多数据部件默认无值显示内容
   * @type {string}
   */
  mDCtrlEmptyText: string;

  /**
   * 多数据部件默认无值内容语言资源
   *
   * @type {IPSLanguageRes}
   */
  getMDCtrlEmptyTextPSLanguageRes(): IPSLanguageRes | null;

  /**
   * 多数据部件默认无值内容语言资源
   *
   * @type {IPSLanguageRes}
   */
  get mDCtrlEmptyTextPSLanguageRes(): IPSLanguageRes | null;

  /**
   * 多数据部件默认无值内容语言资源（必须存在）
   *
   * @type {IPSLanguageRes}
   */
  getMDCtrlEmptyTextPSLanguageResMust(): IPSLanguageRes;

  /**
   * 主菜单对齐
   * @description 值模式 [应用首页视图主菜单方向] {LEFT：左侧、 TOP：上方、 CENTER：中间、 TREEEXP：树导航、 TABEXP_TOP：分页导航（上方分页）、 TABEXP_LEFT：分页导航（左侧分页）、 TABEXP_BOTTOM：分页导航（下方分页）、 TABEXP_RIGHT：分页导航（右侧分页）、 NONE：不显示 }
   * @type {( string | 'LEFT' | 'TOP' | 'CENTER' | 'TREEEXP' | 'TABEXP_TOP' | 'TABEXP_LEFT' | 'TABEXP_BOTTOM' | 'TABEXP_RIGHT' | 'NONE')}
   */
  mainMenuAlign: string | 'LEFT' | 'TOP' | 'CENTER' | 'TREEEXP' | 'TABEXP_TOP' | 'TABEXP_LEFT' | 'TABEXP_BOTTOM' | 'TABEXP_RIGHT' | 'NONE';

  /**
   * 前端模板样式
   * @type {string}
   */
  pFStyle: string;

  /**
   * 前端模板
   * @type {string}
   */
  pFType: string;

  /**
   * 应用界面样式
   * @description 值模式 [应用界面模式] {DEFAULT：默认、 STYLE2：样式2、 STYLE3：样式3、 STYLE4：样式4、 STYLE5：样式5、 STYLE6：样式6、 STYLE7：样式7、 STYLE8：样式8、 STYLE9：样式9、 STYLE10：样式10、 PREVIEW：预览样式 }
   * @type {( string | 'DEFAULT' | 'STYLE2' | 'STYLE3' | 'STYLE4' | 'STYLE5' | 'STYLE6' | 'STYLE7' | 'STYLE8' | 'STYLE9' | 'STYLE10' | 'PREVIEW')}
   */
  uIStyle: string | 'DEFAULT' | 'STYLE2' | 'STYLE3' | 'STYLE4' | 'STYLE5' | 'STYLE6' | 'STYLE7' | 'STYLE8' | 'STYLE9' | 'STYLE10' | 'PREVIEW';

  /**
   * 自动转换12列至24列布局
   * @type {boolean}
   */
  enableCol12ToCol24: boolean;

  /**
   * 支持动态数据看板
   * @type {boolean}
   */
  enableDynaDashboard: boolean;

  /**
   * 支持搜索条件存储
   * @type {boolean}
   */
  enableFilterStorage: boolean;

  /**
   * 启用界面模型增强
   * @type {boolean}
   * @default false
   */
  enableUIModelEx: boolean;

  /**
   * 表格默认支持定制
   * @type {boolean}
   */
  gridEnableCustomized: boolean;

  /**
   * 表格默认启用全屏
   * @type {boolean}
   */
  gridForceFit: boolean;

  /**
   * 输出表单项更新权限标记
   * @type {boolean}
   */
  outputFormItemUpdatePrivTag: boolean;
}
